//
// Created by fairy on 2025/7/9.
//
#pragma once
#include <common_definition.h>
#include <project_config.h>
#ifdef ENABLE_FREERTOS
#include "cmsis_os2.h"
#endif
#include <hal_delay.hpp>

// 该延时只供Core层使用，HAL和BSP层请使用hal::delay（已通过分离公共目录和子项目共享目录，以及CMake模块化构建来避免此问题）
namespace core
{
    class delay:public hal::delay
    {
    public:
        ALWAYS_INLINE static void ms(const uint32_t ms_) noexcept
        {
#ifdef ENABLE_FREERTOS
            osDelay(ms_);
#else
            hal::delay::ms(ms_);
#endif
        }
    };
}